home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / lib-old / codehack.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  2KB  |  68 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.4)
  3.  
  4. import sys
  5. from stat import *
  6. import string
  7. import os
  8. import linecache
  9. SET_LINENO = 127
  10. identchars = string.ascii_letters + string.digits + '_'
  11. _namecache = { }
  12.  
  13. def getcodename(co):
  14.     
  15.     try:
  16.         return co.co_name
  17.     except AttributeError:
  18.         pass
  19.  
  20.     key = `co`
  21.     if _namecache.has_key(key):
  22.         return _namecache[key]
  23.     
  24.     filename = co.co_filename
  25.     code = co.co_code
  26.     name = ''
  27.     if ord(code[0]) == SET_LINENO:
  28.         lineno = ord(code[1]) | ord(code[2]) << 8
  29.         line = linecache.getline(filename, lineno)
  30.         words = line.split()
  31.         if len(words) >= 2 and words[0] in ('def', 'class'):
  32.             name = words[1]
  33.             for i in range(len(name)):
  34.                 if name[i] not in identchars:
  35.                     name = name[:i]
  36.                     break
  37.                     continue
  38.             
  39.         
  40.     
  41.     _namecache[key] = name
  42.     return name
  43.  
  44.  
  45. def getfuncname(func):
  46.     
  47.     try:
  48.         return func.func_name
  49.     except AttributeError:
  50.         pass
  51.  
  52.     return getcodename(func.func_code)
  53.  
  54.  
  55. def getlineno(co):
  56.     
  57.     try:
  58.         return co.co_firstlineno
  59.     except AttributeError:
  60.         pass
  61.  
  62.     code = co.co_code
  63.     if ord(code[0]) == SET_LINENO:
  64.         return ord(code[1]) | ord(code[2]) << 8
  65.     else:
  66.         return -1
  67.  
  68.